﻿using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using System.Web.Mvc;
using Tecnosop.Dominio.Validadores;

namespace Tecnosop.Dominio
{
    [MetadataType(typeof(CLIENTEMetadata))]
    public partial class CLIENTE
    {
        internal class CLIENTEMetadata
        {
            [DisplayName("Rut")]
            [Required(ErrorMessage = " Ingrese el rut del cliente")]
            [RegularExpression(@"\d{1,10}[-][0-9kK]{1}$", ErrorMessage = "El rut ingresado no es correcto")]
            [RutValidator(ErrorMessage = "El dígito verificador es incorrecto")]
            [Remote("ValidaRutUnico", "Cliente", ErrorMessage = "El rut ingresado ya existe en la base de datos")]
            public string RUT_CLIENTE { get; set; }

            [DisplayName("Región")]
            [Required(ErrorMessage = "Seleccione una región")]
            public string REGION { get; set; }

            [DisplayName("Nombre")]
            [Required(ErrorMessage = "Ingrese el nombre del cliente")]
            public string NOMBRE { get; set; }

            [DisplayName("Dirección")]
            [Required(ErrorMessage = "Ingrese la dirección del cliente")]
            public string DIRECCION { get; set; }

            [DisplayName("Ciudad")]
            [Required(ErrorMessage = "Ingrese una ciudad")]
            public string CUIDAD { get; set; }

            [DisplayName("Comuna")]
            [Required(ErrorMessage = "Ingrese una comuna")]
            public string COMUNA { get; set; }

            [DisplayName("Email")]
            //[Required(ErrorMessage = "Ingrese el email del cliente")]
            [DataType(DataType.EmailAddress)]
            [RegularExpression(@"^(([^<>()[\]\\.,;:\s@\""]+(\.[^<>()[\]\\.,;:\s@\""]+)*)|(\"".+\""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$",
            ErrorMessage = "El mail ingresado no es correcto")]
            public string EMAIL { get; set; }

            [DisplayName("Teléfono N°1")]
            [DataType(DataType.PhoneNumber)]
            [DefaultValue(" ")]
            public string TELEFONO_1 { get; set; }

            [DisplayName("Teléfono N°2")]
            [DataType(DataType.PhoneNumber)]
            [DefaultValue(" " )]
            public string TELEFONO_2 { get; set; }

            [ScaffoldColumn(false)]
            //[DisplayName("")]
            //[HiddenInput(DisplayValue=false)]
            public Nullable<bool> CONVENIO { get; set; }

            [DisplayName("Giro")]
            [Required(ErrorMessage = "Ingrese el tipo de giro del cliente")]
            public string GIRO { get; set; }

            [ScaffoldColumn(false)]
            public Nullable<bool> VISIBLE { get; set; }
        }
    }
}
